/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import MYSQLConection.OperacionesDB;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import negocio.Usuario;

/**
 *
 * @author Adrian
 */
public class DaoUsuarios {

    private static DaoUsuarios instance;

    private DaoUsuarios() {
    }

    public static DaoUsuarios getInstance() {
        if (instance == null) {
            return instance = new DaoUsuarios();
        }
        return instance;
    }

    public boolean registrar(String cedula, String nombre, String apellido, String direccion, String telefono, String correoElectronico, String contrasena) throws SQLException {

        OperacionesDB db = new OperacionesDB();
        String query = "insert into usuario values('" + cedula + "'," + "'" + nombre + "'," + "'" + apellido + "'," + "'" + direccion + "'," + "'" + telefono + "'," + "'" + correoElectronico + "'," + "'" + contrasena + "')";
        if (db.ingreso(query)) {
            return true;
        } else {
            return false;
        }

    }

    public void Modificar(String cedula, String nombre, String apellido, String direccion, String telefono, String correoElectronico, String contrasena) throws SQLException {
        System.out.println("3333" + cedula);
        OperacionesDB db = new OperacionesDB();
        String query = "UPDATE Usuarios SET nombre='" + nombre + "',apellido='" + apellido + "',direccion='" + direccion + "',telefono='" + telefono + "',correo='" + correoElectronico + "',contrasena='" + contrasena + "' where cedula='" + cedula + "'";
        db.modificacioneliminacion(query);
        db.cerrarConexion();

    }

    public void Eliminar(String cedula) throws SQLException {

        OperacionesDB db = new OperacionesDB();
        String query1 = "delete from Eventos where cedula='" + cedula + "'";
        db.modificacioneliminacion(query1);
        db.cerrarConexion();

        String query2 = "delete from usuarios where cedula='" + cedula + "'";
        db.modificacioneliminacion(query2);
        db.cerrarConexion();

    }

    public ArrayList<Usuario> listar() throws SQLException {
        OperacionesDB db = new OperacionesDB();
        ArrayList<Usuario> users = new ArrayList();
        String query = "select * from Usuarios";
        ResultSet resultado = db.seleccion(query);
        Usuario user = null;
        while (resultado.next()) {

            user = new Usuario(resultado.getString(1), resultado.getString(2), resultado.getString(3), resultado.getString(4), resultado.getString(5), resultado.getString(6), resultado.getString(7));
            users.add(user);
        }
        db.cerrarConexion();

        return users;

    }

    public Usuario Buscar(String cedula) throws SQLException {
        OperacionesDB db = new OperacionesDB();

        String query = "select * from usuario where cedula='" + cedula + "'";
        ResultSet resultado = db.seleccion(query);
        Usuario user = null;
        while (resultado.next()) {

            user = new Usuario(resultado.getString(1), resultado.getString(2), resultado.getString(3), resultado.getString(4), resultado.getString(5), resultado.getString(6), resultado.getString(7));

        }
        db.cerrarConexion();

        return user;

    }

    public boolean ExisteUsuario(String cedula) throws SQLException {
        OperacionesDB db = new OperacionesDB();
        int cont = 0;
        String query = "select * from usuario where cedula='" + cedula + "'";
        ResultSet resultado = db.seleccion(query);
        while (resultado.next()) {
            cont++;
        }
        db.cerrarConexion();
        if (cont != 0) {
            return true;
        } else {
            return false;
        }

    }

    public Usuario Logeo(String cedula, String contrasena) throws SQLException {
        OperacionesDB db = new OperacionesDB();
        String query = "Select * from usuario where cedula='" + cedula + "'" + "and contrasena='" + contrasena + "'";
        ResultSet resultado = db.seleccion(query);
        Usuario user = null;
        while (resultado.next()) {
            user = new Usuario(resultado.getString(1), resultado.getString(2), resultado.getString(3), resultado.getString(4), resultado.getString(5), resultado.getString(6), resultado.getString(7));
        }
        db.cerrarConexion();

        return user;

    }
}
